package cn.wolfcode.mapper;

import cn.wolfcode.domain.Consumption;
import cn.wolfcode.qo.QueryObject;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface ConsumptionMapper {
    int deleteByPrimaryKey(Long id);

    int insert(Consumption record);

    Consumption selectByPrimaryKey(Long id);

    List<Consumption> selectAll();

    int updateByPrimaryKey(Consumption record);

    List<Consumption> selectForList(QueryObject qo);

    //结算时间 payTime  结算人的id payeeId  status设置为1待审核
    //审核时间 auditTime 审核人的id auditorId status设置为2归档 3坏账
    //如果是坏账就要扣除审核人的结算人的工资

    /**
     * 修改结算信息
     *
     * @param id      修改哪一条结算单
     * @param status  修改状态为 待审核 状态为 1
     * @param payTime 修改结算时间为当前时间
     * @param payeeId 结算人信息
     */
    void updatePayeeMsg(@Param("id") Long id, @Param("status") Integer status, @Param("payTime") Date payTime, @Param("payeeId") Long payeeId);

    /**
     * 修改审核信息
     *
     * @param id        修改哪一条结算单
     * @param status    修改状态为 坏账 3 或 归档 2
     * @param auditTime 修改审核时间为当前时间
     * @param auditorId 审核人信息
     */
    void updateAuditorMsg(@Param("id") Long id, @Param("status") Integer status, @Param("auditTime") Date auditTime, @Param("auditorId") Long auditorId);
}